package com.Adapters.Items;


import android.view.View;
import com.Animations.AnimUtil.AnimationCompleted;


public interface ItemPost {

    /*
     * Show the animation of PostIn in AnimationUtil
     * @see com.Adapters.Items.ItemPost#AnimateIn()
     */
    public void AnimateIn();

    /**
     * Show the animation of PostOut in AnimationUtil
     * 
     * @param callback
     *            when the animation ends its going to call to this callback
     */
    public void AnimateOut(AnimationCompleted callback);

    /**
     * Clear the entire animation list of the posts
     */
    public void clearAnimatonList();

    /**
     * Remove a post from the list, its necessary to have an adapter to remove
     * it
     */
    public void delete();

    /**
     * @return the total of comments in the post
     */
    public int getCommentsCount();

    public int getLikesCount();

    /**
     * @return the id of the post
     */
    public int getPostId();

    public String getPublicationDate();

    public int getPosition();

    public View getView(View convertView, int position);

    public int getViewType();

    /**
     * Set the new count of comments to the post
     * 
     * @param count
     *            the new count of comments after adding or removing
     */
    public void setCommentsCount(int count);

    /**
     * Set the new count of likes to the post
     * 
     * @param count
     *            the new count of likes after adding or removing
     */
    public void setLikesCount(int count);

    /**
     * Update the date of the post with a new one
     * 
     * @param newDate
     *            the new date to set up
     */
    public void updatePublicationDate(String newDate);

}
